iT邦幫忙

2025 iThome 鐵人賽

DAY 9
0
Software Development

AI 慣老闆的 AI 學習歷程 - AI 時代的軟體工程的反思系列 第 9

AI 慣老闆的 AI學習日記 Day 8 - 重大安全漏洞!API Key 寫死程式碼被爬

  • 分享至 

  • xImage
  •  

https://ithelp.ithome.com.tw/upload/images/20250812/20142509iKbPvWP3UG.png

(開場:貝老闆興奮地衝進辦公室,手上揮著筆電)

貝老闆:小可小可!我昨天請 AI 幫我們跟 GCP 的 Gemini API 串接,現在我們系統也要有 AI 功能啦!

小可(抬頭,眉頭一皺):你…API Key 放哪?

貝老闆:我看 AI 有幫我產生 .env 環境檔啊,然後我就通通上傳到 GitHub 了,超方便的~

(手機突然震動,螢幕顯示「Github Security Alert: API Key Leaked!」)

小可(白眼+拍桌):你是想讓駭客幫你訓練模型嗎?!

(十分鐘後,兩人正透過視訊找好威求救)

好威(皺眉):齁~這是新手經典雷包。你雖然有用 .env,但直接把它 commit 上 GitHub 公開 repo,等於把金鑰掛在大門口,爬蟲秒抓走。

貝老闆:可是…AI 說這樣就可以用了啊…

好威:AI 只負責「讓它能跑」,不負責「讓它安全」,你有叫他提供安全的使用建議嗎?現在你得重發 Key、下架 repo,還得寫報告給客戶。

小可:我馬上幫你把 repo 下掉,改成用雲端 Secrets Manager!


【好威解析】

好威:所謂 Secrets,就是像 API Key、資料庫密碼、Token 這類敏感資訊,千萬不能上傳到版本庫。就算用 .env,只要沒設定 .gitignore,一樣會外流。

安全做法是用 環境變數(Environment Variables)Secrets Manager(像 GCP Secret Manager、AWS Secrets Manager、Vault),讓程式在執行時才讀取,確保關鍵資訊不會出現在程式碼本體中。

【概念拆解】

Secrets 外洩風險:把 API Key 寫在程式碼又公開上傳,就像把家門鑰匙釘在門口公告欄,任何人都能拿走。傳統上,工程師會用版本控制規則(.gitignore)與安全掃描工具來防止外洩。和 AI 協作時,你必須主動告訴它「不要把 API Key 或密碼直接寫在程式裡」,並要求它示範如何讀取外部設定。如果不懂,可以問 AI:「我有一組 API Key,要怎麼安全地讓程式使用,又不會被上傳到 GitHub?」

環境變數優勢:環境變數就像把鑰匙鎖在家裡的保險箱裡,只有你需要時才拿出來用。傳統開發中,會在伺服器或本機設定環境變數,程式啟動時再讀取。和 AI 協作時,要請它「建立 .env.example 範例檔,並寫程式讀取這些變數」,不要放真實 Key。如果不懂,可以問 AI:「幫我建立一個用 .env 檔讀取 API Key 的範例,並確保它不會被上傳到 GitHub。」

CI/CD 保護:自動化部署工具像 GitHub Actions、GitLab CI 都有內建 Secrets 功能,可以安全地將 Key 傳給程式而不寫進檔案。傳統團隊會在部署環境中設定這些 Secrets。和 AI 協作時,你可以問它:「幫我在 GitHub Actions 中設定 Secrets 並在部署時讀取」,AI 會給你範例流程。不要假設 AI 會自動替你這麼做,因為它預設只會讓功能能跑。

AI 協作提醒:AI 會依你指示生成程式碼,但它不會自動替你考慮安全策略,除非你明講。傳統上,安全是工程師的職責;在 AI 時代,這變成使用者必須在 Prompt 裡明確要求的部分。對於小白來說,可以直接問 AI:「請用安全的方式處理 API Key,並告訴我它存在哪裡、為什麼安全。」這樣才能確保你得到的是「能用又安全」的解法。

【Takeaways】

API Key 外洩 = 公開發鑰匙:不管多急,都不要把 Key 放在公開程式碼裡。和 AI 協作時,開頭就要說明「請不要把 Key 寫死在程式裡,也不要上傳」。

環境變數 = 鑰匙保險箱:用環境變數或 Secrets Manager 管理 Key 才安全。和 AI 協作時,請它產生 .env.example 並教你如何設定。

部署流程也要防護:CI/CD 工具的 Secrets 功能能避免 Key 被硬寫進檔案。AI 可以幫你寫部署腳本,但要先明講「請用 Secrets 注入」。

AI 不是安全專家:AI 不會主動幫你上鎖,要靠你問對問題。對小白來說,可以問:「這段程式碼有安全風險嗎?有的話幫我改成安全版本。」

【今日提問】
如果 AI 幫你生成程式碼,卻把 .env 連同 Key 一起上傳,你會怎麼處理?


上一篇
AI 慣老闆的 AI學習日記 Day 7 - 假日壓新功能沒測試直接 Deploy,Bug 滿天飛。
下一篇
AI 慣老闆的 AI學習日記 Day 9 - 看不到錯誤只能瞎猜:「到底錯在哪?」
系列文
AI 慣老闆的 AI 學習歷程 - AI 時代的軟體工程的反思32
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言